package com.yxinsur.imc.business.form;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxinsur.imc.common.annotation.Excel;
import com.yxinsur.imc.common.core.domain.BaseImcEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 发票管理请求对象 imc_invoice
 *
 * @author imc
 * @date 2021-05-31
 */
@EqualsAndHashCode(callSuper = false)
@Data
public class ImcInvoiceForm extends BaseImcEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    private Long id;

    /**
     * 购买方(机构)
     */
    @Excel(name = "购买方(机构)")
    private Long orgId;

    /**
     * 销售方[供应商]
     */
    @Excel(name = "销售方[供应商]")
    private String supplierName;

    /**
     * 开票日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invoiceDate;

    /**
     * 开票状态
     */
    @Excel(name = "开票状态")
    private String invoiceStatus;

    /**
     * 发票原件URL
     */
    @Excel(name = "发票原件URL")
    private String invoiceUrl;

    /**
     * 发票原件URL
     */
    @Excel(name = "发票原件URL")
    private List<String> invoiceUrlList;

    /**
     * 原始结算清单附件
     */
    @Excel(name = "原始结算清单附件")
    private String recnUrl;

    /**
     * 开票金额
     */
    @Excel(name = "开票金额")
    private BigDecimal prem;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private String createId;

    /**
     * 作废原因
     */
    @Excel(name = "作废原因")
    private String cancelCause;

    /**
     * 修改人
     */
    @Excel(name = "修改人")
    private String updateId;

    /**
     * 逻辑删除
     */
    @Excel(name = "逻辑删除")
    private String isDeleted;

    /**
     * 租户id,一个租户id唯一对一个机构id（默认机构id为根节点id暨法人机构）
     */
    @Excel(name = "租户id,一个租户id唯一对一个机构id", readConverterExp = "默=认机构id为根节点id暨法人机构")
    private Long tenantId;
}
